home *** CD-ROM | disk | FTP | other *** search
- #!/bin/csh -f
- #
- # Installs Modula-2* tree
- #
- # Syntax: ipdm2s-install <VERSION> [<DIRECTORY> [<ARCH>]]
- #
- # Parameters: 1) Version number
- # 2) Target directory for Modula-2* (default: './')
- # 3) required architecture (default: determined)
- #
- # Stefan Haenssgen & Thomas Gauweiler 7-Apr-94
- #
- # Changes:
- #
- # 15-jan-93 Created [SH&TG]
- # 28-jan-93 .mspath file added [TG]
- # 16-jun-93 /tmp_mnt eliminated [TG]
- # 15-nov-93 architecture and others [TG]
- # 11-jan-94 version stamp [TG]
- # 01-apr-94 changed to ipd-version [TG]
- # 02-may-94 uses ipdm2s.$VERSION.$ARCH.gz file, too [TG]
- #
-
- set MM_SED='sed -e s|/amd/|/|g -e s|/export/|/|g -e s|/tmp_mnt/|/|g'
-
- #
- # determine machine architecture (what type of machine we're on!)
- # by examining return values of "uname", "arch", or "machine"
- #
-
- if (-x /bin/uname || -x /usr/bin/uname) then
- set SRC_ARCH=`uname -m`
- else if (-x /bin/arch || -x /usr/bin/arch) then
- set SRC_ARCH=`arch`
- else if (-x /bin/machine || -x /usr/bin/machine) then
- set SRC_ARCH=`machine`
- endif
-
- if (! $?SRC_ARCH) then # could architecture not be determined ?
- echo 'Error: could not determine source architecture'
- # exit 2
- else if ("$SRC_ARCH" =~ sun4*) then # SparcStation
- set SRC_ARCH="SUN4"
- else if ("$SRC_ARCH" =~ sun3*) then # Sun-3 with 680x0 CPU
- set SRC_ARCH="SUN3"
- else if ("$SRC_ARCH" =~ i?86*) then # 386/486/Pentium PC
- set SRC_ARCH="I386"
- if (-x /bin/uname || -x /usr/bin/uname) then
- if ("`uname -s`" =~ *Linux*) then
- set SRC_ARCH="LINX" # Linux
- endif
- endif
- else if ("$SRC_ARCH" =~ ksr?*) then # KSR-1 or KSR-2
- set SRC_ARCH="KSRP"
- else if ("$SRC_ARCH" =~ RISC* || "$SRC_ARCH" =~ mips*) then
- if ("`uname -v`" =~ *MP*) then # MasPar frontend if ..
- set SRC_ARCH="MASP" # DECStation and version *MP*
- else
- set SRC_ARCH="MIPS" # else plain DECStation
- endif
- else
- echo 'Error: unknown source architecture "'$SRC_ARCH'"'
- exit 9
- endif
-
- #
- # check for parameters
- #
- if ($1 == "") then
- echo 'usage: ipdm2s-install <VERSION> [<DIRECTORY> [<ARCH>]]'
- echo ''
- echo ' default <DIRECTORY> is ./'
- echo ' default <ARCH> is automagically determined'
- echo ''
- echo 'example: ipdm2s-install 9401 ./ SUN4'
- exit 1
- else
- set VERSION=$1
- endif
- if ($2 == "") then
- set MSDIR="./"
- set ARCH=$SRC_ARCH
- else
- set MSDIR=$2
- endif
- if ($3 == "") then
- set ARCH=$SRC_ARCH
- else
- set ARCH=$3
- endif
-
- #
- # check if source & target exist and are accessible
- #
- if ( ! -r ipdm2s.$VERSION.$ARCH.tgz ) then
- if ( -r ipdm2s.$VERSION.$ARCH.gz ) then
- mv ipdm2s.$VERSION.$ARCH.gz ipdm2s.$VERSION.$ARCH.tgz
- else if ( -r ipdm2s.$VERSION.$ARCH.tar.gz ) then
- mv ipdm2s.$VERSION.$ARCH.tar.gz ipdm2s.$VERSION.$ARCH.tgz
- else
- echo 'Error: cannot access file "ipdm2s.'$VERSION.$ARCH'.tgz"'
- exit 2
- endif
- endif
- if ( ! -d $MSDIR) then
- echo 'Error: target directory must already exist.'
- exit 3
- endif
- if ( ! -w $MSDIR) then
- echo 'Error: cannot write to target directory.'
- exit 4
- endif
-
- #
- # determine the paths
- #
-
- set PWD_DIR=`pwd`
- cd $MSDIR
- set MSDIR=`pwd | $MM_SED`
-
- #
- # extract it
- #
-
- echo ''
- echo '*****'
- echo '***** IPD Modula-2* Installation Script'
- echo '*****'
- echo ''
- echo 'Extracting from "'ipdm2s.$VERSION.$ARCH.tgz'" to "'$MSDIR'"'
- echo ''
- gunzip < $PWD_DIR/ipdm2s.$VERSION.$ARCH.tgz | tar xvf -
- echo ''
-
- echo 'Installation directory = "'$MSDIR'"'
- echo $MSDIR/lib >.mspath
- echo ''
-
- echo "Configuring the Modula-2* driver scripts ..."
- sed -e "s|_MSC_HOME_|$MSDIR|" \
- <gen/driver.gen >bin/mm
-
- #
- # make scripts and binaries executable
- #
-
- chmod ugo+x bin/$ARCH/*.$ARCH
- chmod ugo+x bin/mm
- chmod ugo+x bin/liball
- chmod ugo+x bin/msproj
- chmod ugo+x bin/newarch
-
- echo "Creating several symbolic links ..."
- cd bin
- if (-e mmclean) then
- rm -f mmclean
- rm -f msdel
- rm -f msmake
- rm -f msrun
- rm -f msrm
- rm -f xmsp
- endif
- ln -s mm mmclean
- ln -s mm msdel
- ln -s mm msmake
- ln -s mm msrun
- ln -s mm msrm
- ln -s mm xmsp
- cd ..
-
- #
- # create example project directory
- #
-
- echo 'Creating example project directory ...'
- cd examples
- ../bin/msproj $ARCH
- cd ..
- echo ''
-
- #
- # create the documentation
- #
-
- if ( ! -r $PWD_DIR/ipdm2s.doc.tar ) then
- echo 'Information: no documentation archive found ...'
- else
- echo 'Extracting compressed documents from documentation archive ...'
- echo ''
- tar xvf $PWD_DIR/ipdm2s.doc.tar
- cd doc
- echo ''
- echo 'Uncompressing the IPD Modula-2* manual ...'
- gunzip ipdm2s.manual.gz
- cd ..
- endif
-
- #
- # change write permissions of extracted & generated files
- #
-
- echo 'Changing write permissions of extracted files and directories ...'
- chmod go-w .mspath Xmsp architectures
- chmod -R go-w bin/ doc/ emacs/ examples/ gen/ lib/
- echo ''
-
- #
- # registration
- #
-
- echo 'Do you want to register your installation now (y/n) ?'
- set answer=$<
- if ( "$answer" =~ y* || "$answer" =~ Y* ) then
- if ( ! -d doc) then
- mkdir doc
- endif
-
- echo 'Please enter your complete email address: '
- set email=$<
- set date=`date`
- sed -e "s|_USER_|$USER|" -e "s|_EMAIL_|$email|" \
- -e "s|_VER_|$VERSION|" -e "s|_ARCH_|$ARCH|" \
- -e "s|_DATE_|$date|" -e "s|_ARCH_|$ARCH|" \
- <gen/registration.gen >doc/registration
- chmod go-w doc/registration
-
- echo ''
- cat doc/registration
- echo 'Do you really want to send this message (y/n) ?'
- set sendanswer=$<
- if ( "$sendanswer" =~ y* || "$sendanswer" =~ Y* ) then
- echo ''
- if (-x /usr/lib/sendmail) then
- /usr/lib/sendmail -t <doc/registration
- echo 'Okay, registration mail sent.'
- else if (-x `which mail`) then
- mail ipdm2s@ira.uka.de <doc/registration
- echo 'Okay, registration mail sent.'
- else
- echo 'Sorry, could not find "sendmail" or "mail" programs.'
- endif
- endif
- endif
- echo ''
-
- #
- # return
- #
-
- echo 'Please add "'$MSDIR/bin'" to your PATH variable.'
- cd $PWD_DIR
- echo ''
-